407 research outputs found
IngenierÃa de software: Reflexiones sobre una disciplina en evolución
This paper analyzes Software Architecture, defining it and describing the evolution of
this field and its role in software engineering. In addition, it covers key concepts of a software archi- tecture course, steps to pursue an architectural thinking, the elements of organizational architecture
maturity and emerging trends and issues such as: Architecture evolution, Architecture conformance, Frameworks, platforms, and ecologies, and Self-Adaptive Systems. Further we examine how software engineering has matured over the past two decades (and the role
that software architecture has played in this process), the requirements of architectural thinking (at
both technical and organizational levels), the importance for an organization to have mature archi- tectural practices and the existence of important new trends that are reshaping the way software
architecture is practicedEste artÃculo analiza la arquitectura del software, definiéndolo y describiendo la evolución de este campo, y su rol en la ingenierÃa del software. Además, este cubre los conceptos claves de un curso sobre la arquitectura del software, los pasos para conseguir un pensamiento arquitectónico, los elementos de la madurez de la arquitectura estructural, y las tendencias y problemas emergentes como: la evolución de la arquitectura, la conformidad de la misma, los marcos de trabajo, las plataformas, y las ecologÃas, y los sistemas automáticos. Más allá, examinamos cómo la ingenierÃa del software ha madurado durante estas últimas dos décadas (y el papel que la arquitectura del software interpretó en este proceso); los requerimientos del pensamiento arquitectónico (a niveles tanto técnicos como organizativos); la importancia que tiene para una organización el hecho de que, las prácticas arquitecturales haya madurado; y la existencia de nuevas tendencias importantes que están modulando la manera en la que se practica la arquitectura del software
Hyper-parameter Tuning for Adversarially Robust Models
This work focuses on the problem of hyper-parameter tuning (HPT) for robust
(i.e., adversarially trained) models, with the twofold goal of i) establishing
which additional HPs are relevant to tune in adversarial settings, and ii)
reducing the cost of HPT for robust models. We pursue the first goal via an
extensive experimental study based on 3 recent models widely adopted in the
prior literature on adversarial robustness. Our findings show that the
complexity of the HPT problem, already notoriously expensive, is exacerbated in
adversarial settings due to two main reasons: i) the need of tuning additional
HPs which balance standard and adversarial training; ii) the need of tuning the
HPs of the standard and adversarial training phases independently. Fortunately,
we also identify new opportunities to reduce the cost of HPT for robust models.
Specifically, we propose to leverage cheap adversarial training methods to
obtain inexpensive, yet highly correlated, estimations of the quality
achievable using state-of-the-art methods (PGD). We show that, by exploiting
this novel idea in conjunction with a recent multi-fidelity optimizer (taKG),
the efficiency of the HPT process can be significantly enhanced
Architectural Mismatch: Why Reuse is Still So Hard
In this article, David Garlan, Robert Allen, and John Ockerbloom reflect on the state of architectural mismatch, a term they coined in their 1995 IEEE Software article, Architectural Mismatch: Why Reuse Is So Hard. Although the nature of software systems has changed dramatically since the earlier article was published, the challenge of architectural mismatch remains an important concern for the software engineering field
ExTrA: Explaining architectural design tradeoff spaces via dimensionality reduction
In software design, guaranteeing the correctness of run-time system behavior while achieving an acceptable balance among multiple quality attributes remains a challenging problem. Moreover, providing guarantees about the satisfaction of those requirements when systems are subject to uncertain environments is even more challenging. While recent developments in architectural analysis techniques can assist architects in exploring the satisfaction of quantitative guarantees across the design space, existing approaches are still limited because they do not explicitly link design decisions to satisfaction of quality requirements. Furthermore, the amount of information they yield can be overwhelming to a human designer, making it difficult to see the forest for the trees. In this paper we present ExTrA (Explaining Tradeoffs of software Architecture design spaces), an approach to analyzing architectural design spaces that addresses these limitations and provides a basis for explaining design tradeoffs. Our approach employs dimensionality reduction techniques employed in machine learning pipelines like Principal Component Analysis (PCA) and Decision Tree Learning (DTL) to enable architects to understand how design decisions contribute to the satisfaction of extra-functional properties across the design space. Our results show feasibility of the approach in two case studies and evidence that combining complementary techniques like PCA and DTL is a viable approach to facilitate comprehension of tradeoffs in poorly-understood design spaces
Developing Self-Adaptive Microservice Systems: Challenges and Directions
A self-adaptive system can dynamically monitor and adapt its behavior to
preserve or enhance its quality attributes under uncertain operating
conditions. This article identifies key challenges for the development of
microservice applications as self-adaptive systems, using a cloud-based
intelligent video surveillance application as a motivating example. It also
suggests potential new directions for addressing most of the identified
challenges by leveraging existing microservice practices and technologies.Comment: 8 pages, 1 figur
Explaining quality attribute tradeoffs in automated planning for self-adaptive systems
Self-adaptive systems commonly operate in heterogeneous contexts and need to consider multiple quality attributes. Human stakeholders often express their quality preferences by defining utility functions, which are used by self-adaptive systems to automatically generate adaptation plans. However, the adaptation space of realistic systems is large and it is obscure how utility functions impact the generated adaptation behavior, as well as structural, behavioral, and quality constraints. Moreover, human stakeholders are often not aware of the underlying tradeoffs between quality attributes. To address this issue, we present an approach that uses machine learning techniques (dimensionality reduction, clustering, and decision tree learning) to explain the reasoning behind automated planning. Our approach focuses on the tradeoffs between quality attributes and how the choice of weights in utility functions results in different plans being generated. We help humans understand quality attribute tradeoffs, identify key decisions in adaptation behavior, and explore how differences in utility functions result in different adaptation alternatives. We present two systems to demonstrate the approach\u27s applicability and consider its potential application to 24 exemplar self-adaptive systems. Moreover, we describe our assessment of the tradeoff between the information reduction and the amount of explained variance retained by the results obtained with our approach
- …